The world is comprised of a wide and varied assortment of environments and subsystems. Akin to the proverbial butterfly flapping its wings in China and causing a hurricane over Texas, miniscule changes to one part of an environment may have catastrophic ripple effects in a distant part of the same environment. One particular example of such an environment is an enterprise environment where these enterprise environments may include an information technology (IT) environment. These IT environments may be intended to have a wide variety of uses: disseminating information about goods and services offered through a site on the World Wide Web, storing internal information related to a business, providing a programming infrastructure for development of software, or keeping track of sales and sales force information.
Consequently, these IT environments grow organically, sewn together in a Frankenstinian manner from a variety of heterogeneous machines and applications. As may be imagined these IT environments may be quite complex. In particular, the adoption of large enterprise software systems such as those intended for sales force automation, enterprise resource planning, supply chain management, strategic IT planning, etc. may require not just the installation of the software and training but often dramatic shifts in culture, how people do their job, what their jobs are and how success is measured with respect to those jobs. Accordingly, in many cases adopting or altering software in an enterprise environment requires the establishment of a new practice or program which impacts large segments of the enterprise's human resources.
It is often impossible, however, to “flip a switch” and have hundreds, thousands or tens of thousands of employees embrace and internalize new practices associated with that enterprise software or to become fully versed with such software instantaneously. What usually occurs is that for a few people, using such software becomes their job while the remaining majority of employees may only utilize the software occasionally to support them in their job. Thus, while those few employees for whom using the enterprise software is their job will quickly grow acclimatized to, and familiar with, the functionality provided by that software, the remaining majority of employees will not obtain fluency with the software and, indeed, may not either desire or require the use of some functionality. In fact, to these employees the presentation of this additional functionality may prove a hindrance to the use of the software as it may prove daunting or confusing.
What is desired, then, is the ability to tailor the functionality presented to a user of a software application according to the needs and abilities of broad and diverse user populations such that the functionality of a software application can be tailored to the maturity of various users within an organization or according to the maturity of the programs or practices supported by that software.